/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ec.dmz.seguridad.ejb.dao;

import ec.dmz.seguridad.ejb.generico.Generico;
import ec.dmz.seguridad.ejb.model.Perfil;
import ec.dmz.seguridad.ejb.model.Usuario;
import ec.dmz.seguridad.ejb.model.UsuarioPerfil;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.Query;
/**
 *
 * @author Estiwar
 */
@LocalBean
@Stateless
public class UsuarioPerfilDao extends Generico<UsuarioPerfil>{
        public UsuarioPerfilDao() {
        super(UsuarioPerfil.class);
    }
    
    public List<UsuarioPerfil> listarPorUsuario(Usuario usuario) throws Exception {
        String jpaQl = "SELECT up FROM UsuarioPerfil up"
                + " WHERE up.usuCodigo = :usuario";
        Query query = getEntityManager().createQuery(jpaQl);
        query.setParameter("usuario", usuario);      
        return query.getResultList();
    }
    
    public void eliminarPorUsuario(Usuario usuario) throws Exception {
        String sql = "DELETE FROM sch_seguridades.usuario_rol"
                + " WHERE usu_id = "+usuario.getUsuCodigo();
        Query query = getEntityManager().createNativeQuery(sql);
        query.executeUpdate();
    }     
    
    
    public List<UsuarioPerfil> listarPorPerfil(String rol) throws Exception {
        String jpaQl = "SELECT u FROM UsuarioPerfil u"
                + " WHERE u.usuario.estado = true"
                + " AND u.rol.nemonico = :rol";
        Query query = getEntityManager().createQuery(jpaQl);
        query.setParameter("rol", rol);
        return query.getResultList();
    }
}
